#include <head.h>

/*
    打开文件open
    #include <fcntl.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <unistd.h>

    int open(const char *pathname,int flags);
    int open(const char *pathname,int flags,mode_t mode);
    功能：
        以指定的模式打开文件并返回文件描述符
    参数：
        @pathname：文件路径
        @flags：打开文件的标志，可以是以下常见选项的组合：
            O_RDONLY:只读模式
            O_WRONLY：只写模式
            O_RDWR：读写模式
            O_CREAT：如果文件不存在 则创建文件
            O_TRUNC:如果文件存在 并且以 写模式 打开，则清空文件内容
            O_APPEND：追加模式，写入的数据添加到文件末尾
        @mode:当使用 O_CREAT 标志是指定文件权限(如‘0644’)但是需要考虑文件掩码的问题
    返回值：
        成功 返回文件描述符(非负整数)
        失败 返回-1 并设置相应的错误码
*/

//0 1 2
int main(int argc,char const *argv[])
{
    int fd = open("hello.txt",O_RDWR | O_TRUNC | O_CREAT, 0666);//以读写模式打开 并且清空写入
    //如果发现创建的文件 权限不对 则使用 umask 命令 检查文件掩码
    FOPEN_ERR(fd); //判断是否错误
    printf("%d\n",fd);

    close(fd);
    return 0;
}   